/*
* Conditions Of Use
*
* This software was developed by employees of the Sigmatrix(Beijing) Corporation.
* This software is provided by sigmatrix as a service and is expressly
* provided "AS IS."  Sigmatrix MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
* AND DATA ACCURACY.  Sigmatrix does not warrant or make any representations
* regarding the use of the software or the results thereof, including but
* not limited to the correctness, accuracy, reliability or usefulness of
* the software.
*
* Permission to use this software is contingent upon your acceptance
* of the terms of this agreement.
*
*/
package com.sigmatrix.h5.service;

import java.util.List;

import com.sigmatrix.h5.entity.WarehouseStockDetails;
import com.sigmatrix.h5.exception.ServiceException;
import com.sigmatrix.h5.service.common.BaseService;

/**
 *@ClassName: WarehouseStockDetailsService
 *@Description: TODO()
 *@author youjun
 *@date 2017年8月27日 下午6:21:12
 */
public interface WarehouseStockDetailsService extends BaseService<WarehouseStockDetails> {

	/**
	 *@Title: batchSave
	 *@Description: TODO()
	 *@return int
	 *@author youjun
	 *@date 2017年8月27日 下午6:52:31
	 *@param warehouseId
	 *@param productId
	 *@param batchCode
	 *@param batchBoxList
	 *@param enterpriseCode
	 * @throws ServiceException 
	 */
	int batchSave(int warehouseId, int productId, String batchCode, List<String> batchBoxList, String enterpriseCode) throws ServiceException;

	/**
	 *@Title: batchUpdateBoxsStatus
	 *@Description: 批量将库存中的一批码更新为出库状态
	 *@return void
	 *@author youjun
	 *@date 2017年8月28日 下午4:59:06
	 *@param warehouseId
	 *@param productId
	 *@param batchBoxList
	 *@param singleList 单品list
	 *@param enterpriseCode
	 */
	int batchUpdateBoxsStatus(int warehouseId, int productId, List<String> batchBoxList, List<String> singleList,short status,
			String enterpriseCode) throws ServiceException;

	/**
	 * 
	 *@Title: countByConditionOut
	 *@Description:校验码是否出库
	 *@return Integer
	 *@author gaomingkai
	 *@date 2017年10月31日 下午11:13:36
	 *@param eseCode
	 *@param warehosueId
	 *@param productId
	 *@param code
	 *@return
	 */
	Integer countByConditionOut(final String eseCode,final Integer warehosueId,final Integer productId,final String code, final int status,final boolean isflag);
	/**
	 * 
	 *@Title: findByConditionOut
	 *@Description: TODO()
	 *@return List<WarehouseStockDetails>
	 *@author gaomingkai
	 *@date 2017年11月24日 下午5:40:44
	 *@param eseCode
	 *@param warehosueId
	 *@param productId
	 *@param code
	 *@param stauts
	 *@return
	 */
	List<WarehouseStockDetails> findByConditionOut(String eseCode, Integer warehosueId, Integer productId,
			String code, int stauts);
}
